#include <stdio.h>
#include <unistd.h>
#include <signal.h>


void hand(int s)
{
	printf("收到信号%d\n",s);
}

int main()
{
	signal(SIGINT,hand);

	//制作信号集
	sigset_t set,oldSet;

	sigemptyset(&set);//清空
	sigaddset(&set,SIGINT);//添加

	//前5s不设置屏蔽
	sleep(5);


	int r;
	//设置屏蔽
	if(sigismember(&set,SIGINT))
	{//在里面才设置屏蔽
		printf("设置屏蔽!\n");

		r = sigprocmask(SIG_BLOCK,&set,&oldSet);
		if(0 == r) printf("设置屏蔽成功!\n");
		else printf("设置屏蔽失败:%m\n");
	}

	//等待5s然后解除屏蔽
	sleep(5);
	//解除屏蔽
	if(sigismember(&set,SIGINT))
	{//在里面才设置屏蔽
		printf("解除屏蔽!\n");

		r = sigprocmask(SIG_UNBLOCK,&set,&oldSet);
		if(0 == r) printf("解除屏蔽成功!\n");
		else printf("解除屏蔽失败:%m\n");
	}
	while(1)
	{
		sleep(1);
		printf("我活的好好的%d--------\n",getpid());
	}

	return 0;
}